home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / Libraries / Tools Plus 3.0 / Tools Plus 3.0 Evaluation Kit / Tools Plus’ Key Features < prev   
INI File  |  1996-03-18  |  29KB  |  866 lines

  1. [Display using Geneva 12]
  2.  
  3.  
  4.  
  5. Tools Plus Features
  6. ~~~~~~~~~~~~~~~~
  7.  
  8.   The following is a partial list of Tools Plus features.  Nearly all of them can be accomplished by a single line of code calling a Tools Plus routine.  Although some of these features may appear to be simple, their functional equivalent, when programmed in C or Pascal without Tools Plus, often requires considerable programming effort and dozens (often hundreds) of lines of code.  Unlike object oriented class libraries that add thousands of lines of code to your application, Tools Plus reduces the need for most of your user interface and event management code, often by as much as 80 to 95%.
  9.  
  10. The key advantages to every Tools Plus routine are:
  11.   • virtually all features can be implemented with a single line of
  12.      code
  13.   • they are consistent across all Systems and Macintosh models
  14.   • they are fully integrated with each other
  15.   • they adopt the “set and forget” principle of self-maintenance
  16.      allowing you to easily create a user interface, then forget about
  17.      it.  Your application responds to very specific events, such as:
  18.      a Pop-up menu was selected in Window 5, Pop-Up Menu 3, Item 6.
  19.  
  20.  
  21.  
  22. W i n d o w s
  23. ~~~~~~~~~~
  24.  
  25. All standard window types are supported
  26.  
  27.  
  28. Referenced by a window number instead of a pointer (pointers can be used if required)
  29.  
  30.  
  31. Full tool bar and floating palette services
  32.  
  33.  
  34. Movable modal dialog is fully supported, and is also available on pre-System 7 Macs
  35.  
  36.  
  37. Any window can be modal to prevent the use of menus or clicking outside the active window
  38.  
  39.  
  40. Optional modal access to the Edit menu or any menu as specified by your application
  41.  
  42.  
  43. All Tools Plus user interface elements (such as buttons, editing fields, etc.) created in a window are automatically maintained… Tools Plus takes care of drawing them and making them work.
  44.  
  45.  
  46. Window positioning options when a new window is opened:
  47.   √ centered on main monitor
  48.   √ tiled (down and right of frontmost standard window, title bar is
  49.       visible)
  50.   √ window must be at least partially visible (in case its co-
  51.       ordinates are remembered by a document, and it is opened on a
  52.       Mac with a monitor that is smaller than the document’s creator)
  53.   √ entire window must be visible
  54.  
  55.  
  56. All user interface elements are correctly disabled/deselected when a window is deactivated and restored to their original state when the window is activated
  57.  
  58.  
  59. Windows with title bars are moved automatically when the use drags them (Tools Plus ensures that windows are not dragged completely off the screen or underneath the tool bar)
  60.  
  61.  
  62. Minimum/maximum size limits can also limit resizing to vertical or horizontal only
  63.  
  64.  
  65. Windows with a “size box” are automatically sized when the user drags the box
  66.  
  67.  
  68. Windows with a “zoom box” in their title bar automatically zoom between a standard size/position and a user-controlled size/position
  69.  
  70.  
  71. The window’s update region is protected to exclude Tools Plus’ user interface elements so your application can refresh a window’s contents without concern about accidentally overwriting buttons, scroll bars, etc.
  72.  
  73.  
  74. When a window needs to be refreshed, your application can redraw custom objects (such as a picture background) before and/or after Tools Plus redraws its objects
  75.  
  76.  
  77. Your application can reposition, resize, or hide/show a window and still have Tools Plus maintain the user interface correctly
  78.  
  79.  
  80. Set/change backdrop color (defaults to white)
  81.  
  82.  
  83. Various routines help your application keep track of windows: frontmost, current, active, frontmost floating palette, frontmost standard window, most recently used, containing active editing field, and more.
  84.  
  85.  
  86. Closing a window automatically releases the memory occupied by Tools Plus user interface elements (buttons, scroll bars, etc.)
  87.  
  88.  
  89. The Finder and all other applications can be hidden as is seen in many installer application
  90.  
  91.  
  92. T o o l   B a r
  93. ~~~~~~~~~~
  94.  
  95. Optional tool bar is created below the menu bar on your main monitor
  96.  
  97.  
  98. As easy to use as a regular window
  99.  
  100.  
  101. Always remains the front window and is always active
  102.  
  103.  
  104. Can contain any Tools Plus user interface element, including pop-up menus, editing fields and picture buttons
  105.  
  106.  
  107. Adjustable height (width is fixed at main monitor’s width)
  108.  
  109.  
  110. Automatically hidden when your application is suspended under MultiFinder (System 5 and 6), or System 7.  When your application is activated, the tool bar is displayed again.
  111.  
  112.  
  113. Can optionally shift all your application’s windows downward as the tool bar opens.  This prevents windows from being partially obscured by the tool bar.  If this option is used, windows are shifted back up when the tool bar is closed.
  114.  
  115.  
  116. If the tool bar’s size is changed by your application (to add or remove a data entry area, for example), all open windows can optionally be shifted to accommodate the difference in tool bar size
  117.  
  118.  
  119. Windows cannot be dragged beneath the tool bar
  120.  
  121.  
  122. F l o a t i n g   P a l e t t e s
  123. ~~~~~~~~~~~~~~~~~~~~~~
  124.  
  125. Floating palettes (often called “palettes” or “windoids”) are supported
  126.  
  127.  
  128. As easy to use as a regular window
  129.  
  130.  
  131. You can use third-party window definitions (WDEFs) or write your own to get a specific look.  Tools Plus takes care of making the window behave like a floating palette.
  132.  
  133.  
  134. Always remain in front of standard windows (if any are open) and behind the tool bar (if there is one)
  135.  
  136.  
  137. Can contain any Tools Plus user interface element, including pop-up menus, editing fields and picture buttons
  138.  
  139.  
  140. Palettes are moved automatically when the user drags them (Tools Plus ensures that they are not dragged completely off the screen or underneath the tool bar)
  141.  
  142.  
  143. When the user clicks on an object (such as a picture button) in floating palette, that palette is quickly brought to the front and refreshed before the click is processed.  This results in very responsive and professional looking palettes.
  144.  
  145.  
  146. Automatically hidden when your application is suspended under MultiFinder (System 5 and 6), or System 7.  When your application is activated, the palettes are displayed again.
  147.  
  148.  
  149. Two styles of palettes are included with Tools Plus: one with a title bar along the top of the palette (with optional title), and a second style that has a drag bar along the left side of the palette.  The second style is well suited for horizontally oriented palettes that need to be as small as possible (the drag bar takes little space).
  150.  
  151.  
  152. B u t t o n s
  153. ~~~~~~~~~
  154.  
  155. Buttons are referenced by a button number instead of a handle
  156.  
  157.  
  158. All 3 types of Macintosh buttons are supported: push button, radio button and check box
  159.  
  160.  
  161. Custom control definitions (CDEFs) can be used.  Tools Plus makes them behave like a push button, check box or radio button (it makes CDEFs work automatically).
  162.  
  163.  
  164. Can adopt a universal color scheme or be individually colored including individual backgrounds
  165.  
  166.  
  167. Enable/disable
  168.  
  169.  
  170. Select/deselect (check boxes and radio buttons only)
  171.  
  172.  
  173. Hide/shown
  174.  
  175.  
  176. Obscure (hide without affecting the window’s image)
  177.  
  178.  
  179. Delete or kill (delete without removing image)
  180.  
  181.  
  182. Move, resize, change co-ordinates or offset (change co-ordinates without altering image)
  183.  
  184.  
  185. Optional automatic move/resize as window’s size changes
  186.  
  187.  
  188. Default push button (a black outline is drawn around the button and it is automatically selected whenever the user types Return or Enter)
  189.  
  190.  
  191. Optional selection using a command key
  192.  
  193.  
  194. Buttons are automatically disabled when their parent window is inactive and return to their normal state when the window is reactivated.
  195.  
  196.  
  197. Each button can have its own font, font size, and style
  198.  
  199.  
  200. Optional double-click detection for radio buttons (can be interpreted to mean “select button and OK”)
  201.  
  202.  
  203. “Flash” a push button to make it appear as though it was clicked
  204.  
  205.  
  206. P i c t u r e   B u t t o n s
  207. ~~~~~~~~~~~~~~~~~~~~
  208.  
  209. Picture buttons are referenced by a button number instead of a handle
  210.  
  211.  
  212. Any icon or PICT can be transformed into a button (they can also contain complex sets of images)
  213.  
  214.  
  215. Enable/disable
  216.  
  217.  
  218. Select/deselect
  219.  
  220.  
  221. Hide/shown
  222.  
  223.  
  224. Obscure (hide without affecting the window’s image)
  225.  
  226.  
  227. Delete or kill (delete without removing image)
  228.  
  229.  
  230. Move or offset (change co-ordinates without altering image)
  231.  
  232.  
  233. Optional automatic move as window’s size changes
  234.  
  235.  
  236. Optional “value” with a minimum/maximum range (like a scroll bar)
  237.  
  238.  
  239. Each button’s appearance and behavior is defined by selecting from a number of choices with literally thousands of combinations
  240.  
  241.  
  242. Picture buttons can be simple like click-sensitive icons, or they can be powerful and provide the appearance of animation
  243.  
  244.  
  245. Converts a simple black and white SICN icon a into richly featured 3D color picture button
  246.  
  247.  
  248. Multiple stage picture buttons have a different appearance for each value in the button’s range, such as an “on/off” button that has a value range from 0 to 1 and has the word “on” or “off” displayed.
  249.  
  250.  
  251. Optional locking in “selected” position (to behave like a radio button)
  252.  
  253.  
  254. Button’s value can change automatically as user interacts with it and/or under your application’s control
  255.  
  256.  
  257. Button’s value can change in the following manner:
  258.   √ constant speed
  259.   √ accelerate at a slow, moderate, or rapid rate
  260.   √ precise rate, such as 90° per second
  261.  
  262.  
  263. Optional repeating events generated as long as the mouse button is held down
  264.  
  265.  
  266. Optional polarization increases the value when clicked on one side and decrease when clicked on the other
  267.  
  268.  
  269. Multiple disabling effects (or alternate image)
  270.  
  271.  
  272. Multiple selection effects (or alternate image)
  273.  
  274.  
  275. Picture buttons are automatically disabled when their parent window is inactive and return to their normal state when the window is reactivated.
  276.  
  277.  
  278. “Flash” a picture button to make it appear as though it was clicked
  279.  
  280.  
  281. S c r o l l   B a r s
  282. ~~~~~~~~~~~~~~
  283.  
  284. Scroll bars are referenced by a scroll bar number instead of a handle
  285.  
  286.  
  287. Custom control definitions (CDEFs) can be used.  Tools Plus makes them behave like a scroll bar (it makes CDEFs work automatically).
  288.  
  289.  
  290. Enable/disable
  291.  
  292.  
  293. Hide/shown
  294.  
  295.  
  296. Obscure (hide without affecting the window’s image)
  297.  
  298.  
  299. Delete or kill (delete without removing image)
  300.  
  301.  
  302. Move, resize, change co-ordinates or offset (change co-ordinates without altering image)
  303.  
  304.  
  305. Optional automatic move/resize as window’s size changes
  306.  
  307.  
  308. Change value, minimum/maximum limit
  309.  
  310.  
  311. Minimum/maximum limits automatically adjusts if the value is set outside the range
  312.  
  313.  
  314. Optional limiting prevents value from exceeding minimum/maximum limit
  315.  
  316.  
  317. Optional throttling lets you control each scroll bar’s speed
  318.  
  319.  
  320. Optional “live scrolling” lets you easily scroll objects in real time as the scroll bar’s thumb is dragged… just process events as you normally do without the need for complex “action” routines
  321.  
  322.  
  323. You can easily install an action routine that is repeatedly called while the scroll bar is tracked and get details about the scroll bar calling the routine
  324.  
  325.  
  326. Attach scroll bars to the window’s right and/or bottom edge to have them automatically repositioned and resized when the window is resized
  327.  
  328.  
  329. Scroll bars are automatically “framed” (empty rectangle) when their parent window is inactive and they return to their normal state when the window is reactivated
  330.  
  331.  
  332. Scroll bars can be disabled instead of being framed when their parent window is inactive and return to their normal state when the window is reactivated
  333.  
  334.  
  335. E d i t i n g   F i e l d s
  336. ~~~~~~~~~~~~~~~~~
  337.  
  338. Easily created with a single line of code
  339.  
  340.  
  341. Editing fields are referenced by a field number instead of a handle
  342.  
  343.  
  344. Each field can manipulate and store up to 32K of text
  345.  
  346.  
  347. Optional vertical and/or horizontal scroll bars (scroll bars and text are always synchronized)
  348.  
  349.  
  350. Optional “live scrolling” lets you scroll the field’s text in real time as the scroll bar’s thumb is dragged
  351.  
  352.  
  353. Enable/disable a field with a variety of visual options
  354.  
  355.  
  356. Disabling a field with no visual effects makes it a “read only” field that can’t be edited by the user… great for a set of instruction in a scrolling display area
  357.  
  358.  
  359. Hide/shown
  360.  
  361.  
  362. Obscure (hide without affecting the window’s image)
  363.  
  364.  
  365. Delete or kill (delete without removing image)
  366.  
  367.  
  368. Move, resize, change co-ordinates or offset (change co-ordinates without altering image)
  369.  
  370.  
  371. Optional automatic move/resize as window’s size changes
  372.  
  373.  
  374. Each field can have its own font, font size and style
  375.  
  376.  
  377. Field height can be specified in pixels or lines
  378.  
  379.  
  380. User edits a copy of the field’s text so your application can revert to the original text at any time
  381.  
  382.  
  383. Get/set a field’s text
  384.  
  385.  
  386. Get a field’s edited text (the text the user is editing and that has not been saved)
  387.  
  388.  
  389. Paste text into a field under application control
  390.  
  391.  
  392. Filters allow/disallow specified characters
  393.  
  394.  
  395. Optional shifting to upper case or lower case characters as letters are typed
  396.  
  397.  
  398. Optional length limiting allows the user to type only a certain number of characters (the field’s length)
  399.  
  400.  
  401. Sophisticated selection and cursor control allows:
  402.   √ shorten/extend a selection a single character at a time (shift-
  403.       arrow)
  404.   √ shorten/extend a selection a word at a time (shift-option-arrow)
  405.   √ move cursor a word at a time (option-arrow)
  406.   √ vertical cursor movement that remember the horizontal position
  407.       (i.e., move up in a straight line)
  408.   √ shift-click extends/shortens a selection
  409.   √ double-click selects a word
  410.   √ typed text is always in view
  411.   √ view follows cursor
  412.  
  413.  
  414. Tab sensing with optional tab to next field or to previous field if shift-tab was typed
  415.  
  416.  
  417. Progressive drag-selection works in conjunction with automatic scrolling making it easy to select additional characters that are out of view -- the further you move the cursor out of the field, the quicker it scrolls
  418.  
  419.  
  420. Text in single-line fields never disappears as it does with ordinary Macintosh fields -- it always scrolls reliably
  421.  
  422.  
  423. The Edit menu automatically interacts with the active editing field.  The Undo, Cut, Copy, Paste, Clear (and optionally Select All) items are automatically enabled/disabled appropriately (see Menus).  Selected text is automatically copied to and from the clipboard when using the Edit Menu.  All Edit menu items are functional when they are created.
  424.  
  425.  
  426. Automatic management of user interface complexities that arise when fields are included on standard windows, floating palettes, and the tool bar
  427.  
  428.  
  429. Choose between memory efficiency for small fields and speed for larger fields
  430.  
  431.  
  432. Advanced low-memory protection (continue without undo, not enough memory, low memory warnings, etc.)
  433.  
  434.  
  435. Selected characters are automatically deselected when the field’s window is inactive and return to their normal state when the window is reactivated
  436.  
  437.  
  438. L i s t   B o x e s
  439. ~~~~~~~~~~~~~
  440.  
  441. Easily created with a single line of code
  442.  
  443.  
  444. List boxes are referenced by a list box number instead of a handle.
  445.  
  446.  
  447. Each list box can have its own font, font size, and style
  448.  
  449.  
  450. Custom list definitions (LDEFs) can be used.  Tools Plus makes them work automatically
  451.  
  452.  
  453. Add, change, delete lines as required (referenced by line number)
  454.  
  455.  
  456. Select/deselect lines
  457.  
  458.  
  459. Hide/shown
  460.  
  461.  
  462. Obscure (hide without affecting the window’s image)
  463.  
  464.  
  465. Delete or kill (delete without removing image)
  466.  
  467.  
  468. Move, resize, change co-ordinates or offset (change co-ordinates without altering image)
  469.  
  470.  
  471. Optional automatic move/resize as window’s size changes
  472.  
  473.  
  474. Various methods are available for selecting lines in a list box, such as: one line only, multiple lines, select as you drag the mouse, and many more
  475.  
  476.  
  477. When you create a list box, the first selected line will always be in view (i.e. not scrolled out of view)
  478.  
  479.  
  480. Your application can determine if a specific line, or any lines are selected in a list box
  481.  
  482.  
  483. A sorted set of resource names (such as fonts or sounds) can be inserted into a list box with a single command
  484.  
  485.  
  486. List box height can be specified in pixels or lines
  487.  
  488.  
  489. List boxes are automatically disabled (the lines are deselected and the scroll bar is disabled) when their window is inactive, and are enabled when the window is activated
  490.  
  491.  
  492. P a n e l s
  493. ~~~~~~~~
  494.  
  495. Produce group boxes or panels to give your application a professional appearance
  496.  
  497.  
  498. Easily created with a single line of code
  499.  
  500.  
  501. Optional flat or 3D title with inset or raised text
  502.  
  503.  
  504. Panels can be simple outlines or 3D (inset or raise)
  505.  
  506.  
  507. Optional rounded corners
  508.  
  509.  
  510. Each panel can have its own font, font size, and style
  511.  
  512.  
  513. Optionally deselect other buttons in the group when one is selected (ideal for radio buttons or CDEF groups)
  514.  
  515.  
  516. Memory efficient color map is shared by all panels in your application (programmer defined)
  517.  
  518.  
  519. Custom color map can optionally be adopted by panels as they are created
  520.  
  521.  
  522. Automatic mapping to lower color depths and/or black and white (optional override)
  523.  
  524.  
  525. Hide/shown
  526.  
  527.  
  528. Obscure (hide without affecting the window’s image)
  529.  
  530.  
  531. Delete or kill (delete without removing image)
  532.  
  533.  
  534. Move, resize, change co-ordinates or offset (change co-ordinates without altering image)
  535.  
  536.  
  537. Optional automatic move/resize as window’s size changes
  538.  
  539.  
  540. M e n u s
  541. ~~~~~~~
  542.  
  543. Easily created with a single command
  544.  
  545.  
  546. Menus are referenced by a menu number instead of a handle
  547.  
  548.  
  549. Hierarchical menus are just as easy to create and maintain as regular pull-down menus
  550.  
  551.  
  552. Menu hierarchies are easily created by simply attaching a submenu to a menu item
  553.  
  554.  
  555. Prevents hierarchy errors such as:
  556.   √ cyclical hierarchies
  557.   √ submenus attached to multiple parents
  558.   √ Command keys invoking an item in an orphan submenu
  559.       (i.e., submenu with no parent), and more
  560.  
  561.  
  562. Prevents logical menu errors such as overwriting a submenu link with a command key
  563.  
  564.  
  565. Menus can be easily added, changed, deleted, renamed, appended, enabled/disabled, restyled, prefaced with a symbol or icon, etc.
  566.  
  567.  
  568. Command key equivalents, icons, check marks, other special marks, and font styling are all supported
  569.  
  570.  
  571. Create a functioning Apple menu with a single command to give your application access to desk accessories (also includes the “About…” item that names your application)
  572.  
  573.  
  574. Access to the Help menu and Applications menu (System 7 or later) is as easy as any other menu
  575.  
  576.  
  577. Hide or show menu bar (automatically shows when application is suspended)
  578.  
  579.  
  580. When using the Finder in System 5 or System 6, menus are automatically enabled/disabled appropriately when a desk accessory is active.  Under MultiFinder and System 7, the menu bar is automatically replaced with the desk accessory’s menu bar when the DA is active.
  581.  
  582.  
  583. The Edit menu’s Undo, Cut, Copy, Paste, and Clear (and optionally Select All) items automatically perform editing functions on the active field and in desk accessories.  These menu items are automatically enabled/disabled appropriately.
  584.  
  585.  
  586. The Edit menu’s Undo item performs Undo/Redo operations on the active editing field.  It automatically changes to “Undo Cut”, “Undo Copy”, “Undo Paste”, and “Undo Typing” as required.  Selecting “Undo…” changes the item to “Redo…” and automatically performs the correct action.
  587.  
  588.  
  589. P o p - U p   M e n u s
  590. ~~~~~~~~~~~~~~~~
  591.  
  592. Easily created with a single line of code
  593.  
  594.  
  595. Pop-up menus are referenced by a menu and item number instead of a handle
  596.  
  597.  
  598. Identical across all system versions thereby providing System 7 features to prior systems
  599.  
  600.  
  601. Optional pop-down menu has a fixed (unchanging) title inside the pop-up box, and the available items appear beneath the control’s box
  602.  
  603.  
  604. Enable/disable
  605.  
  606.  
  607. Hide/shown
  608.  
  609.  
  610. Obscure (hide without affecting the window’s image)
  611.  
  612.  
  613. Delete or kill (delete without removing image)
  614.  
  615.  
  616. Move, resize, change co-ordinates or offset (change co-ordinates without altering image)
  617.  
  618.  
  619. Optional automatic move/resize as window’s size changes
  620.  
  621.  
  622. Supports “down arrow” suppression, multiple fonts, single item selection, and more
  623.  
  624.  
  625. When displaying a pop-up menu using a font other than the System Font (such as Geneva 9pt), Tools Plus’ pop-up menus are unaffected by other applications that may use unorthodox programming techniques (such as a famous word processor that resets other applications’ pop-up menu font size).
  626.  
  627.  
  628. Optionally display the selected item’s icon in the pop-up menu’s box
  629.  
  630.  
  631. Items in the menu can be added, changed, deleted, renamed, appended, enabled/disabled, restyled, prefaced with a symbol or icon, etc.
  632.  
  633.  
  634. Icons, check marks, other special marks, and font styling are all supported
  635.  
  636.  
  637. Pop-up menus are automatically disabled when their parent window is inactive and return to their normal state when the window is reactivated
  638.  
  639.  
  640. M o u s e
  641. ~~~~~~~
  642.  
  643. Single, double, and triple clicks, as well as dragging is automatically detected and reported
  644.  
  645.  
  646. A cursor table can be used to detect if the mouse was clicked in specific areas (such as a picture or icon).  This feature effectively makes any object “click sensitive.”
  647.  
  648.  
  649. E v e n t   H a n d l i n g   ( P o l l i n g )
  650. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  651.  
  652. A single routine keeps all automatic Tools Plus processes running smoothly and informs your application if something has occurred such as the user selecting a menu or clicking a button
  653.  
  654.  
  655. The revolutionary Event Translator reports events in a highly informative, simple, concise, and ready-to-use format instead of being cryptic and requiring message decoding.  Example: the “Save” button was selected in the “Add Customer” window (button 4 was selected in window 15), or “Menu Item 16 was selected in Menu 4.”  This is much simpler than decoding event messages, tracking controls, and using handles and pointers.
  656.  
  657.  
  658. Most events are processed entirely by Tools Plus such as typing in an active editing field or selecting its text, or using the Edit menu on a field, or running desk accessories.  It’s completely automatic and requires no coding at all.
  659.  
  660.  
  661. Tools Plus takes care of maintaining the user interface before it reports an event to your application.  For example, in a doRefresh event (refresh a window), all Tools Plus user interface elements (buttons, scroll bars, editing fields, etc.) are redrawn automatically.
  662.  
  663.  
  664. Many events can be ignored if your application doesn’t care about them, such as when the user drags or re-sizes a window or if the text in a field is changed
  665.  
  666.  
  667. Events that are not processed by Tools Plus are reported to your application, which can either ignore them or process them as required.  This allows advanced programmers to implement their own special features.
  668.  
  669.  
  670. C l i p b o a r d
  671. ~~~~~~~~~~~~
  672.  
  673. The clipboard is automatically maintained when using the Edit menu on an editing field (the clipboard contains copied text)
  674.  
  675.  
  676. Your application does not need to directly interact with the clipboard because the Edit menu takes care of moving text between your application and the clipboard and vice versa
  677.  
  678.  
  679. The Edit menu’s “Undo” operation restores the clipboard to its original state, so if you accidentally copy something to the clipboard and undo the copying, the clipboard’s original contents are automatically restored
  680.  
  681.  
  682. C u r s o r s
  683. ~~~~~~~~~
  684.  
  685. The shape of the cursor can be changed with a single command
  686.  
  687.  
  688. Color cursors are fully supported
  689.  
  690.  
  691. The cursor’s shape changes automatically depending on where it is on the screen (i.e., I-Beam inside a field, different shape per cursor zone, an arrow outside the active window., etc.)
  692.  
  693.  
  694. A cursor table can be set up to automatically change the cursor’s shape depending on its position in a window, so it could become a “plus” cursor when located over a grid of cells (like in a spreadsheet application) and an arrow elsewhere.
  695.  
  696.  
  697. When the wrist watch cursor is displayed, Tools Plus discards all mouse clicks and typing except Command-. (operator halting a lengthy process)
  698.  
  699.  
  700. Optionally, your application can permit the clicking of a push button when the wrist watch cursor is displayed.  This is useful if you have a Cancel button displayed on a window during a lengthy process.
  701.  
  702.  
  703. Multiple cursor animation sequences (like the Finder’s spinning wrist watch) are supported
  704.  
  705.  
  706. Your application is informed when the cursor moves into a new cursor zone in case you want to display a message as the user points to something
  707.  
  708.  
  709. D e s k   A c c e s s o r i e s
  710. ~~~~~~~~~~~~~~~~~~~~~
  711.  
  712. Access to desk accessories is made possible by creating the Apple menu with a single command
  713.  
  714.  
  715. The Edit menu’s Undo, Cut, Copy, Paste, and Clear items interact automatically with desk accessories
  716.  
  717.  
  718. Desk accessories are handled automatically by Tools Plus (you don’t have to program anything to use them)
  719.  
  720.  
  721. D i a l o g s / A l e r t s
  722. ~~~~~~~~~~~~~~~~~~
  723.  
  724. Alerts and modal dialog boxes are supported by standard C or Pascal statements, however they can be easily simulated by using Tools Plus windows or Tools Plus’ Dynamic Alerts
  725.  
  726.  
  727. D y n a m i c   A l e r t s
  728. ~~~~~~~~~~~~~~~~~~~
  729.  
  730. Dynamic Alerts are alerts (or simple dialogs) that are automatically sized in relation to the alert’s contents -- they grow as big as needed to always appear aesthetically pleasing, and buttons are sized to accommodate their text.  It’s like having hundreds of customized alert boxes available at your disposal without having to create any resources.
  731.  
  732.  
  733. Dynamic Alerts are created with a single command and do not require the use of resources
  734.  
  735.  
  736. You can use various combinations of Yes, No, OK, and Cancel buttons, or define your own combinations.  A default button can be optionally specified.
  737.  
  738.  
  739. An icon can be optionally displayed and the alert can optionally beep when displayed
  740.  
  741.  
  742. Buttons can be selected using command keys (i.e., a “Yes” button can be selected with Command-Y)
  743.  
  744.  
  745. Dynamic Alerts, unlike Macintosh alerts, are unaffected by screen savers
  746.  
  747.  
  748. Dynamic Alerts are always centered perfectly on the main monitor regardless of the monitor’s size or the number of monitors used
  749.  
  750.  
  751. C u s t o m   W i n d o w s   a n d   C o n t r o l s
  752. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  753.  
  754. Third party WDEFs (window definitions) can be used for windows and CDEFs (control definitions) can be used for buttons and scroll bars.  Tools Plus makes them work automatically.
  755.  
  756.  
  757. Custom CDEFs that do not related to buttons or scroll bars and require specific application processing can also be used.  Tools Plus hands events pertaining to those controls directly to your application.
  758.  
  759.  
  760. E x t r a s
  761. ~~~~~~~~
  762.  
  763. C/C++ programmers can use Pascal strings (the default), C and Pascal strings, or C strings exclusively as parameters in Tools Plus routines.  You can get rid of “\p…” when you use Tools Plus.
  764.  
  765.  
  766. Multiple language support (English, French, German, etc.)
  767.  
  768.  
  769. Zoom lines, such as those displayed by the Finder when a document is opened, are available to make objects appear to zoom out from the screen or zoom back down again.
  770.  
  771.  
  772. All icon types (cicn, icl8, icl4, ics8, ics4, ics#, SICN, ICON, and ICN#) are drawn with a single command.
  773.   √ selected/unselected
  774.   √ enabled/disabled
  775.   √ drawn correctly across multiple monitors
  776.  
  777.  
  778. Indexed SICN drawing
  779.  
  780.  
  781. Macintosh-standard thermometer is system independent (identical to the Finder’s)
  782.  
  783.  
  784. Multiple color text drawing routines
  785.  
  786.  
  787. Multiple picture drawing routines
  788.  
  789.  
  790. ‘STR#’ structure maintenance (create new structure, get, add, change and delete string)
  791.  
  792.  
  793. Create and destroy off-screen BitMap or PixMap
  794.  
  795.  
  796. System independent BitMap to region conversion
  797.  
  798.  
  799. Initialize a structure (set to zero)
  800.  
  801.  
  802. Compare two structures for equality
  803.  
  804.  
  805. System version
  806.  
  807.  
  808. Tools Plus version
  809.  
  810.  
  811. M o n i t o r s
  812. ~~~~~~~~~~
  813.  
  814. Color, gray-scale and monochrome (black and white) monitors are supported, as are multiple-monitor setups
  815.  
  816.  
  817. Specialized routines facilitate color-dependent drawing and inform your application of its environment
  818.  
  819.  
  820. All Tools Plus objects are displayed correctly even when spanning multiple monitors
  821.  
  822.  
  823. All objects support dynamic monitor resolution changes as made possible with today’s multi-scan monitors
  824.  
  825.  
  826. All objects support dynamic monitor setup changes as made possible with System 7.5 or later
  827.  
  828.  
  829. M e m o r y
  830. ~~~~~~~~~
  831.  
  832. Memory fragmentation due to opening and closing windows is eliminated regardless of the number of windows your application uses or has open at the same time
  833.  
  834.  
  835. Tools Plus is memory efficient requiring little of your application’s memory for its own overhead
  836.  
  837.  
  838. Tools Plus does not fragment memory
  839.  
  840.  
  841. S y s t e m s
  842. ~~~~~~~~~~
  843.  
  844. Tools Plus can be compiled into applications intended for System 5 and System 6 (Finder and MultiFinder), System 7, and Power Macintosh (in 68040 emulation and/or native mode).
  845.  
  846.  
  847. C u s t o m   C D E F s
  848. ~~~~~~~~~~~~~~~~
  849.  
  850. Custom CDEFs (buttons and other controls) are available from third parties and Water’s Edge Software.  Tools Plus can make them as easy to implement and use as regular buttons and scroll bars.
  851.  
  852. The Tools Plus Developer Kit includes SuperCDEFs, the world-class controls for discerning developers that give your applications a professional look.  They include:
  853.   √ replacement for standard Apple buttons with a white center in
  854.       check box and radio buttons
  855.   √ check box with an additional “undefined” state
  856.   √ check box with a programmer-defined icon in place of the “x” in
  857.       the box
  858.   √ variety of buttons including optional 3D bodies and/or 3D title
  859.       (inset or raised text)
  860.   √ thermometer with optional “busy state” (the moving barber pole
  861.       effect as seen in the Finder)
  862.   √ variety of tabs including optional 3D bodies and/or 3D title
  863.       (inset or raised text)
  864.   √ variety of sliders including optional 3D bodies and/or 3D text for
  865.       the scale (inset or raised text)
  866.